<style>
    .title {
        text-align: center;
        font-size: 25px;
        font-family: 幼圆;
        font-wight: border;
        margin-bottom: 20px;
        padding-top: 45px;
        font-weight: bold;
    }
    .foot {
        width: 100%;
        height: 50px;
        padding-left: 350px;
        color: #337ab7;
    }
    .pwd {
        text-decoration: none;
        padding-left: 150px;
    }
    .demo-upload-list {
        display: inline-block;
        width: 60px;
        height: 60px;
        text-align: center;
        line-height: 60px;
        border: 1px solid transparent;
        border-radius: 4px;
        overflow: hidden;
        background: #fff;
        position: relative;
        box-shadow: 0 1px 1px rgba(0,0,0,.2);
        margin-right: 4px;
    }
    .demo-upload-list img {
        width: 100%;
        height: 100%;
    }
    .demo-upload-list-cover {
        display: none;
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        background: rgba(0,0,0,.6);
    }
    .demo-upload-list:hover .demo-upload-list-cover {
        display: block;
    }
    .demo-upload-list-cover i {
        color: #fff;
        font-size: 20px;
        cursor: pointer;
        margin: 0 2px;
    }
</style>
<template>
    <div>
        <Row>
            <Card>
                <Form :model="formValidate" :label-width="80">
                    <div>
                        <div class="demo-upload-list" v-for="item in uploadList">
                            <template v-if="item.status === 'finished'">
                                <img :src="item.url">
                                <div class="demo-upload-list-cover">
                                    <Icon type="ios-eye-outline" @click.native="handleView(item.name)"></Icon>
                                    <Icon type="ios-trash-outline" @click.native="handleRemove(item)"></Icon>
                                </div>
                            </template>
                            <template v-else>
                                <Progress v-if="item.showProgress" :percent="item.percentage" hide-info></Progress>
                            </template>
                        </div>
                        <Upload
                                ref="upload"
                                :show-upload-list="false"
                                :default-file-list="defaultList"
                                :on-success="handleSuccess"
                                :format="['jpg','jpeg','png']"
                                :max-size="2048"
                                :on-format-error="handleFormatError"
                                :on-exceeded-size="handleMaxSize"
                                :before-upload="handleBeforeUpload"
                                multiple
                                type="drag"
                                action="//jsonplaceholder.typicode.com/posts/"
                                style="display: inline-block;width:58px;">
                            <div style="width: 58px;height:58px;line-height: 58px;">
                                <Icon type="camera" size="20"></Icon>
                            </div>
                        </Upload>
                        <Modal title="查看图片" v-model="visible">
                            <img :src="'https://o5wwk8baw.qnssl.com/' + imgName + '/large'" v-if="visible" style="width: 100%">
                        </Modal>
                    </div>


                    <div class="title">个人信息</div>
                    <Row>
                        <Col span="12" offset="6">
                        <FormItem label="姓名" prop="name">
                            <Input v-model="formValidate.name" readonly></Input>
                        </FormItem>
                        </Col>
                        <Col span="12" offset="6">
                        <FormItem label="手机号码" prop="phone">
                            <Input v-model="formValidate.phone" readonly></Input>
                        </FormItem>
                        </Col>
                        <Col span="12" offset="6">
                        <FormItem label="电子邮箱" prop="mail">
                            <Input v-model="formValidate.mail" readonly></Input>
                        </FormItem>
                        </Col>
                        <Col span="12" offset="6">
                        <FormItem label="用户类别" prop="type">
                            <Input v-model="formValidate.type" readonly></Input>
                        </FormItem>
                        </Col>
                        <Col span="12" offset="6">
                        <FormItem label="用户密码" prop="password">
                            <Input v-model="formValidate.password" readonly></Input>
                        </FormItem>
                        </Col>
                    </Row>

                    <FormItem>
                        <div class="foot">
                            <span class="modify" @click="modifyModal = true">基本信息修改</span>
                            <span class="pwd" @click="pwdModal = true">密码修改</span>
                        </div>
                    </FormItem>
                </Form>

                <Modal
                        v-model="modifyModal"
                        title="修改个人信息"
                        ok-text="保存">
                    <Form :model="formValidate" :label-width="80">
                        <FormItem label="姓名" prop="name">
                            <Input v-model="formValidate.name"></Input>
                        </FormItem>
                        <FormItem label="手机号码" prop="phone">
                            <Input v-model="formValidate.phone"></Input>
                        </FormItem>
                        <FormItem label="电子邮箱" prop="mail">
                            <Input v-model="formValidate.mail"></Input>
                        </FormItem>
                        <FormItem label="用户类别" prop="type">
                            <Input v-model="formValidate.type"></Input>
                        </FormItem>
                    </Form>
                </Modal>

                <Modal
                        v-model="pwdModal"
                        title="修改密码"
                        ok-text="保存">
                    <Form ref="formCustom" :model="formCustom" :label-width="80">
                        <FormItem label="原密码" prop="originalPassword">
                            <Input type="password" v-model="formCustom.originalPassword"></Input>
                        </FormItem>
                        <FormItem label="新密码" prop="password">
                            <Input type="password" v-model="formCustom.password"></Input>
                        </FormItem>
                        <FormItem label="确认密码" prop="passwordCheck">
                            <Input type="password" v-model="formCustom.passwordCheck"></Input>
                        </FormItem>
                    </Form>
                </Modal>
            </Card>
        </Row>
    </div>
</template>
<script>
    import api from '@/libs/util';
    export default {
        data() {
            return {
                formValidate: {
                    name: '',
                    phone:'',
                    mail: '',
                    type: '',
                    password: ''
                },
                formCustom: {
                    originalPassword:'',
                    password: '',
                    passwordCheck: ''
                },
                modifyModal: false,
                pwdModal: false,

                defaultList: [
                    {
                        'name': 'a42bdcc1178e62b4694c830f028db5c0',
                        'url': 'https://o5wwk8baw.qnssl.com/a42bdcc1178e62b4694c830f028db5c0/avatar'
                    },
                    {
                        'name': 'bc7521e033abdd1e92222d733590f104',
                        'url': 'https://o5wwk8baw.qnssl.com/bc7521e033abdd1e92222d733590f104/avatar'
                    }
                ],
                imgName: '',
                visible: false,
                uploadList: []
            }
        },
        methods: {
            handleView (name) {
                this.imgName = name;
                this.visible = true;
            },
            handleRemove (file) {
                // 从 upload 实例删除数据
                const fileList = this.$refs.upload.fileList;
                this.$refs.upload.fileList.splice(fileList.indexOf(file), 1);
            },
            handleSuccess (res, file) {
                // 因为上传过程为实例，这里模拟添加 url
                file.url = 'https://o5wwk8baw.qnssl.com/7eb99afb9d5f317c912f08b5212fd69a/avatar';
                file.name = '7eb99afb9d5f317c912f08b5212fd69a';
            },
            handleFormatError (file) {
                this.$Notice.warning({
                    title: '文件格式不正确',
                    desc: '文件 ' + file.name + ' 格式不正确，请上传 jpg 或 png 格式的图片。'
                });
            },
            handleMaxSize (file) {
                this.$Notice.warning({
                    title: '超出文件大小限制',
                    desc: '文件 ' + file.name + ' 太大，不能超过 2M。'
                });
            },
            handleBeforeUpload () {
                const check = this.uploadList.length < 5;
                if (!check) {
                    this.$Notice.warning({
                        title: '最多只能上传 5 张图片。'
                    });
                }
                return check;
            }
        },
        mounted () {
            this.uploadList = this.$refs.upload.fileList;
        }
    }
</script>
